home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 212 / 212.d81 / b.shove it (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  11KB  |  314 lines

  1. 10 ifl=0thenl=1:load"s.fnt",8,1
  2. 20 poke52,128:poke56,128:clr:l=1
  3. 30 poke56578,peek(56578)or3:poke56576,(peek(56576)and252)or1:poke53272,16
  4. 40 poke648,132:poke53269,0:poke53280,14:poke53281,0:print"[154][147]";
  5. 50 diml1,l2,i,j,b(35),s(35)
  6. 70 gosub6000
  7. 80 gosub950
  8. 90 fori=0to34:readb(i),s(i):next
  9. 100 readl1,l2
  10. 105 print"[159][\\\\\\\\\\][157][157][157][157][157][157][157][157][157][157][157][157]^[155]score[159]....._ [159]";
  11. 110 print"[157][157][157][157][157][157][157][157][157][157][157][157][157]/::::::::::; [159]";
  12. 112 print"[157][157][157][157][157][157][157][157][157][157][157][157]            [159]"
  13. 115 print"[159][\\\\\\\\\\\\][\\\\\\\\\\\\]"
  14. 120 print"^..[155]problem[159]..._ [159]^..[155]solution[159].._ [159]"
  15. 125 print"[159][198]\\\\\\\\\\\\[199] [159][198]\\\\\\\\\\\\[199] [159]"
  16. 130 i=15:ifb(26)=10theni=12
  17. 135 forj=1toi:print"^............_ [159]^............_ [159]":next
  18. 140 print"/::::::::::::; [159]/::::::::::::; [159]"
  19. 145 print"                            [159]";
  20. 180 r=1:fori=0to34:gosub1010:next
  21. 190 r=0:fori=0to34:gosub1010:next
  22. 200 rem main loop
  23. 205 m$=str$(m):m$=mid$(m$,2,len(m$)-1):m$=right$("....."+m$,5)
  24. 209 print"";m$;
  25. 210 ifq=0then216
  26. 211 ifjj=0thenreadjj
  27. 212 a=jj:jj=int(jj/10):a=a-int(jj*10)
  28. 213 geta$:ifa$<>chr$(135)then225
  29. 214 geta$:ifa$<>chr$(133)then214
  30. 215 goto225
  31. 216 geta$:ifa$=""then280
  32. 220 a=asc(a$)
  33. 225 if(a=145)or(a=1)or(a=85)then410
  34. 230 if(a=17)or(a=2)or(a=68)then510
  35. 240 if(a=29)or(a=4)or(a=82)then610
  36. 250 if(a=157)or(a=3)or(a=76)then710
  37. 260 if(a=136)or(a=5)or(a=83)then810
  38. 265 ifa=133then910
  39. 266 ifa=134thenprint"[154][147]";:gosub6400:goto80
  40. 270 goto210
  41. 280 a=peek(56320)and31:ifa=31then210
  42. 290 a=31-a:ifaand1then410
  43. 300 ifaand2then510
  44. 310 ifaand4then710
  45. 320 ifaand8then610
  46. 330 ifaand16then810
  47. 340 goto210
  48. 400 rem move up
  49. 410 onb(l1-5)+1goto415,420,210,425,430,435,210,210,440,445,210
  50. 415 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
  51. 420 b(l1)=1:b(l1-5)=0:i=l1:gosub1010:l1=l1-5:i=l1:goto2010
  52. 425 b(l1)=3:b(l1-5)=2:b(l1-10)=0:i=l1:gosub1010:i=l1-5:gosub1010:l1=l1-10
  53. 426 i=l1:goto2010
  54. 430 ifl2<>l1+1then210
  55. 431 b(l1)=b(l1-5):b(l2)=b(l2-5):b(l1-5)=0:b(l2-5)=0:i=l1:gosub1010:i=l2
  56. 432 gosub1010:l1=l1-5:l2=l2-5:i=l2:gosub1010:i=l1:goto2010
  57. 435 ifl2<>l1-1then210
  58. 436 goto431
  59. 440 ifl2<>l1+1then210
  60. 441 b(l1)=b(l1-5):b(l1-5)=b(l1-10):b(l1-10)=0:b(l2)=b(l2-5):b(l2-5)=b(l2-10)
  61. 442 b(l2-10)=0:i=l2:gosub1010:i=l2-5:gosub1010:l2=l2-10:i=l2:gosub1010
  62. 443 i=l1:gosub1010:i=l1-5:gosub1010:l1=l1-10:i=l1:goto2010
  63. 445 ifl2<>l1-1then210
  64. 446 goto441
  65. 500 rem move down
  66. 510 onb(l1+5)+1goto515,520,525,210,530,535,540,545,210,210,210
  67. 515 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
  68. 520 b(l1)=1:b(l1+5)=0:i=l1:gosub1010:l1=l1+5:i=l1:goto2010
  69. 525 b(l1)=2:b(l1+5)=3:b(l1+10)=0:i=l1:gosub1010:i=l1+5:gosub1010:l1=l1+10
  70. 526 i=l1:goto2010
  71. 530 ifl2<>l1+1then210
  72. 531 b(l1)=b(l1+5):b(l2)=b(l2+5):b(l1+5)=0:b(l2+5)=0:i=l1:gosub1010:i=l2
  73. 532 gosub1010:l1=l1+5:l2=l2+5:i=l2:gosub1010:i=l1:goto2010
  74. 535 ifl2<>l1-1then210
  75. 536 goto531
  76. 540 ifl2<>l1+1then210
  77. 541 b(l1)=b(l1+5):b(l1+5)=b(l1+10):b(l1+10)=0:b(l2)=b(l2+5):b(l2+5)=b(l2+10)
  78. 542 b(l2+10)=0:i=l2:gosub1010:i=l2+5:gosub1010:l2=l2+10:i=l2:gosub1010
  79. 543 i=l1:gosub1010:i=l1+5:gosub1010:l1=l1+10:i=l1:goto2010
  80. 545 ifl2<>l1-1then210
  81. 546 goto541
  82. 600 rem move right
  83. 610 onb(l1+1)+1goto615,620,625,630,635,210,640,210,645,210,210
  84. 615 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
  85. 620 b(l1)=1:b(l1+1)=0:i=l1:gosub1010:l1=l1+1:i=l1:goto2010
  86. 625 ifl2<>l1+5then210
  87. 626 b(l1)=b(l1+1):b(l2)=b(l2+1):b(l1+1)=0:b(l2+1)=0:l1=l1+1:l2=l2+1:i=l2
  88. 627 gosub1010:i=l2-1:gosub1010:i=l1-1:gosub1010:i=l1:goto2010
  89. 630 ifl2<>l1-5then210
  90. 631 goto626
  91. 635 b(l1)=4:b(l1+1)=5:b(l1+2)=0:l1=l1+2:i=l1-2:gosub1010:i=l1-1:gosub1010
  92. 636 i=l1:goto2010
  93. 640 ifl2<>l1+5then210
  94. 641 b(l1)=b(l1+1):b(l1+1)=b(l1+2):b(l1+2)=0:b(l2)=b(l2+1):b(l2+1)=b(l2+2)
  95. 642 b(l2+2)=0:l2=l2+2:l1=l1+2:i=l2:gosub1010:i=l2-1:gosub1010:i=l2-2:gosub1010
  96. 643 i=l1-2:gosub1010:i=l1-1:gosub1010:i=l1:goto2010
  97. 645 ifl2<>l1-5then210
  98. 646 goto641
  99. 700 rem move left
  100. 710 onb(l1-1)+1goto715,720,725,730,210,735,210,740,210,745,210
  101. 715 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
  102. 720 b(l1)=1:b(l1-1)=0:i=l1:gosub1010:l1=l1-1:i=l1:goto2010
  103. 725 ifl2<>l1+5then210
  104. 726 b(l1)=b(l1-1):b(l2)=b(l2-1):b(l1-1)=0:b(l2-1)=0:l1=l1-1:l2=l2-1:i=l2
  105. 727 gosub1010:i=l2+1:gosub1010:i=l1+1:gosub1010:i=l1:goto2010
  106. 730 ifl2<>l1-5then210
  107. 731 goto726
  108. 735 b(l1)=5:b(l1-1)=4:b(l1-2)=0:l1=l1-2:i=l1+2:gosub1010:i=l1+1:gosub1010
  109. 736 i=l1:goto2010
  110. 740 ifl2<>l1+5then210
  111. 741 b(l1)=b(l1-1):b(l1-1)=b(l1-2):b(l1-2)=0:b(l2)=b(l2-1):b(l2-1)=b(l2-2)
  112. 742 b(l2-2)=0:l2=l2-2:l1=l1-2:i=l2:gosub1010:i=l2+1:gosub1010:i=l2+2:gosub1010
  113. 743 i=l1+2:gosub1010:i=l1+1:gosub1010:i=l1:goto2010
  114. 745 ifl2<>l1-5then210
  115. 746 goto741
  116. 800 rem switch holes
  117. 810 i=l1:l1=l2:l2=i:gosub1010:i=l1:gosub1010:goto210
  118. 900 rem see solution
  119. 910 gosub950:fori=0to34:readb(i),s(i):next:readl1,l2:fori=0to29:gosub1000:next
  120. 920 q=1:goto210
  121. 950 rem find problem
  122. 960 restore:ifpn=0thenreturn
  123. 970 fori=1topn
  124. 975 readj:ifj>=0then975
  125. 980 next:return
  126. 1000 rem draw square i
  127. 1010 y=int(i/5):x=i-5*y:x=x*3+20*r:y=y*3+6
  128. 1020 printleft$("",y);tab(x);:b=b(i):ifrthenb=s(i)
  129. 1030 onb+1goto1040,1050,1060,1070,1080,1090,1110,1120,1130,1140,1150
  130. 1040 ifi=l1then1160
  131. 1045 print"...[157][157][157]...[157][157][157]...";:return
  132. 1050 print"[158]![197]#[157][157][157]$%&[157][157][157]'()";:return
  133. 1060 print"![197]#[157][157][157]$%&[157][157][157]$%&";:return
  134. 1070 print"$%&[157][157][157]$%&[157][157][157]'()";:return
  135. 1080 print"![197][197][157][157][157]$%%[157][157][157]'((";:return
  136. 1090 print"[197][197]#[157][157][157]%%&[157][157][157](()";:return
  137. 1110 print"![197][197][157][157][157]$%%[157][157][157]$%%";:return
  138. 1120 print"[197][197]#[157][157][157]%%&[157][157][157]%%&";:return
  139. 1130 print"$%%[157][157][157]$%%[157][157][157]'((";:return
  140. 1140 print"%%&[157][157][157]%%&[157][157][157](()";:return
  141. 1150 return
  142. 1160 onb(l1-5)+1goto1180,1180,1200,1180,1170,1190,1200,1200,1170,1190,1200
  143. 1170 ifl2<>l1+1then1200
  144. 1180 print".*.[157][157][157]";:goto1210
  145. 1190 ifl2=l1-1then1180
  146. 1200 print"...[157][157][157]";
  147. 1210 onb(l1-1)+1goto1230,1230,1240,1220,1250,1230,1250,1240,1250,1220,1250
  148. 1220 ifl2<>l1-5then1250
  149. 1230 print"+.";:goto1260
  150. 1240 ifl2=l1+5then1230
  151. 1250 print"..";
  152. 1260 onb(l1+1)+1goto1280,1280,1290,1270,1280,1300,1290,1300,1270,1300,1300
  153. 1270 ifl2<>l1-5then1300
  154. 1280 print",[157][157][157]";:goto1310
  155. 1290 ifl2=l1+5then1280
  156. 1300 print".[157][157][157]";
  157. 1310 onb(l1+5)+1goto1330,1330,1330,1350,1340,1320,1340,1320,1350,1350,1350
  158. 1320 ifl2<>l1-1then1350
  159. 1330 print".-.";:return
  160. 1340 ifl2=l1+1then1330
  161. 1350 print"...";:return
  162. 2000 rem check board
  163. 2010 gosub1010:j=0:fori=0to29:j=j+(b(i)<>s(i)):next:m=m+1:ifjthen205
  164. 2015 fori=1to5:gosub6300:next
  165. 2020 print"[154][147][159][\\\\\\\\\\\\\\\\\\\\]"
  166. 2030 ifqthenprint"^that.was.not.so.hard[159]_ [159]":goto2050
  167. 2040 print"^.....you.did.it.....[159]_ [159]"
  168. 2050 print"[159]/::::::::::::::::::::; [159]"
  169. 2055 print"                      [159]"
  170. 2060 gosub6400:goto80
  171. 3000 rem restore font, pointers
  172. 3010 poke56578,peek(56578)or3:poke56576,peek(56576)or3:poke53272,20
  173. 3020 poke648,4:poke53280,14:poke53281,6:print"[154][147]";:return
  174. 4000 rem problem 1
  175. 4010 data10,10,10,10,10,10,10,10,10,10
  176. 4020 data10,10, 1, 1, 4, 1, 5, 0, 1, 1
  177. 4030 data10,10, 1, 2, 6, 6, 7, 7, 2, 0
  178. 4040 data10,10, 0, 3, 8, 8, 9, 9, 3, 1
  179. 4050 data10,10, 1, 1, 0, 4, 1, 5, 1, 1
  180. 4060 data10,10,10,10,10,10,10,10,10,10
  181. 4070 data10,10,10,10,10,10,10,10,10,10
  182. 4080 data16,22
  183. 4090 data33241351,41513225,32452324
  184. 4100 data45111541,22544452,11533225
  185. 4110 data22544451,15133533,25241351
  186. 4120 data41133254,4,-1
  187. 4500 rem problem 2
  188. 4510 data10,10,10,10,10,10,10,10,10,10
  189. 4520 data10,10, 6, 1, 7, 0, 2, 1, 1, 1
  190. 4530 data10,10, 8, 0, 9, 1, 3, 4, 1, 5
  191. 4540 data10,10, 4, 1, 5, 2, 1, 6, 0, 7
  192. 4550 data10,10, 1, 1, 1, 3, 0, 8, 1, 9
  193. 4560 data10,10,10,10,10,10,10,10,10,10
  194. 4570 data10,10,10,10,10,10,10,10,10,10
  195. 4580 data19,23
  196. 4590 data14511515,225423,13235332
  197. 4600 data25244544,11513535,54445245
  198. 4610 data35222532,4511335